import java.util.Scanner;

public class Three {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        char[] s=in.next().toCharArray();

        char maxChar='0';
        int maxCount=0;
        int[] hash=new int[26];
        for (int i = 0; i < n; i++) {
            char ch=s[i];
            if (++hash[ch-'a']>maxCount){
                maxChar=ch;
                maxCount=hash[ch-'a'];
            }
        }
        //判断是否能重排
        if (maxCount>(n+1)/2){
            System.out.println("no");
        }else {
            System.out.println("yes");
            char[] ret=new char[n];
            int i=0;
            //重新排列
            //1.先处理出现次数最多的字符
            while(maxCount--!=0){
                ret[i]=maxChar;
                i+=2;
            }
            //2.处理剩下的字符
            for (int j = 0; j < 26; j++) {
                if (hash[j]!=0&&(char)(j+'a')!=maxChar){
                    while (hash[j]--!=0){
                        if (i>=n){
                            i=1;
                        }
                        ret[i]=(char)(j+'a');
                        i+=2;
                    }
                }
            }
            for (int j = 0; j < n; j++) {
                System.out.print(ret[j]);
            }
        }
    }
}
